﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace sy2_10
{
    public partial class Form1 : Form
    {
        int[] num; // 存储随机数的数组
        string statisticsStr; // 存储统计信息的字符串

        public Form1()
        {
            InitializeComponent();
            this.Text = "数字排序";
            // 初始化排序按钮为禁用
            btnSort.Enabled = false;
        }

        // “产生”按钮点击事件
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            try
            {
                // 获取输入的数字个数、范围
                int n = int.Parse(lblCount.Text);
                int min = int.Parse(txtMin.Text);
                int max = int.Parse(txtMax.Text);

                // 初始化数组
                num = new int[n];
                int positive = 0, negative = 0, odd = 0, even = 0;
                Random rnd = new Random();

                // 生成随机数并统计
                for (int i = 0; i < n; i++)
                {
                    num[i] = rnd.Next(min, max + 1);
                    if (num[i] > 0) positive++;
                    if (num[i] < 0) negative++;
                    if (num[i] % 2 == 1 || num[i] % 2 == -1) odd++;
                    else even++;
                }

                // 拼接统计信息
                statisticsStr = $"\r\n正数{positive}个 负数{negative}个 奇数{odd}个 偶数{even}个";
                // 显示随机数与统计信息
                txtResult.Text = string.Join(" ", num) + statisticsStr;

                // 启用排序按钮，重置按钮文本
                btnSort.Enabled = true;
                btnSort.Text = "排序";
            }
            catch (Exception ex)
            {
                MessageBox.Show("输入格式错误，请输入整数！");
            }
        }

        // “排序/逆序”按钮点击事件
        private void btnSort_Click(object sender, EventArgs e)
        {
            if (btnSort.Text == "排序")
            {
                // 正序排序
                Array.Sort(num);
                btnSort.Text = "逆序";
            }
            else
            {
                // 逆序（基于正序结果反转）
                Array.Reverse(num);
                btnSort.Text = "排序";
            }
            // 显示排序后的结果与统计信息
            txtResult.Text = string.Join(" ", num) + statisticsStr;
        }
    }

}
